package com.fh.modules.dbms.service;

import com.fh.common.web.AbstractService;
import com.fh.modules.dbms.entity.DbmsView;
import com.fh.modules.dbms.model.CompareResultModel;

import java.util.Date;
import java.util.List;

/**
 * @Author qiujunda
 * @Date 14/07/2020
 * @Description
 */
public interface IDbmsViewService extends AbstractService<DbmsView> {

    /**
     * 新增或修改，如果sourceId和viewName存在则修改，不存在新增
     * @param dbmsView
     * @return
     */
    DbmsView addOrUpdateDbmsView(DbmsView dbmsView);

    /**
     * 根据更新时间检查数据源下所有视图，并逻辑删除视图
     * @param sourceId 数据源ID
     * @param collectSid 采集sessionId
     */
    void checkAndDeleteDbmsView(Long sourceId, String collectSid);

    /**
     *  查询两数据源视图详情textContent和对比结果
     * @param sourceId1
     * @param sourceId2
     * @param viewName
     * @return
     */
    CompareResultModel queryViewCompareContentResult(Long sourceId1, Long sourceId2, String viewName);

    /**
     *  查询数据源视图差异
     * @param sourceId1
     * @param sourceId2
     * @param viewName 视图名 可null
     * @param diff 0:不相同的 1：相同的 可null
     * @return
     */
    List<CompareResultModel> compareView(Long sourceId1, Long sourceId2, String viewName, Integer diff);

    /**
     * 从source1同步view到source2
     * @param sourceId1
     * @param sourceId2
     * @param viewName
     */
    void syncView(Long sourceId1, Long sourceId2, String viewName) throws  Exception;

}
